#include <creation_graphe.h>


/*lire un graphe qui provient d'un fichier et le mettre sous forme de tableau de sommet*/
t_SOMMET	*creation_graphe(FILE *f, t_SOMMET *graphe, int *Nb_Villes, double epsilon, double *x_min, double *y_min, double *x_max, double *y_max)
{
	char nom[256] ;
	int numero ;
	double x , y ; 
	int Nb_aretes = 0 ;
	int i = 0 ;
	fscanf(f, "%d %d", Nb_Villes, &Nb_aretes); /*Lecture des nombres "Nb_Villes" et "Nb_aretes" dans le fichier*/
	graphe = calloc(*Nb_Villes, sizeof(*graphe)) ;
	fseek(f, 19 * sizeof(char), SEEK_CUR) ;/*Ne lit pas la deuxième ligne du fichier*/
	while(i <= *(Nb_Villes) - 1)
	{
		fscanf(f, "%d %lf %lf %[^\n]", &numero, &x, &y, nom) ;
		graphe[i].numero = numero ;
		/*Les 5 prochains "if" servent à trouver les extrema des coordonnées pour l'affichage graphique*/
		if (i == 0)
		{
			*x_min = graphe[i].x ;
			*x_max = graphe[i].x ;
			*y_min = graphe[i].y ;
			*y_max = graphe[i].y ;
		}
		if(x < *x_min)
		{
			*x_min = x ;
		}
		if(x > *x_max)
		{
			*x_max = x ;
		}
		if(y < *y_min)
		{
			*y_min = y ;
		}
		if(y > *y_max)
		{
			*y_max = y ;
		}
		graphe[i].x = x ;
		graphe[i].y = y ;
		strcpy(graphe[i].nom, nom) ;
		graphe[i].voisins = creer_liste() ;
		graphe[i].voisins = calloc(1, sizeof(*(graphe[i].voisins))) ;
		graphe[i].voisins = voisins(graphe[i], f, Nb_aretes, epsilon) ;
		i++ ;
	}
	return (graphe) ;
}
